Efficient management of resources of data processing systems is of the utmost importance in modern organizations. This problem is particular acute when the systems are very complex and dispersed across a large number of installations; moreover, the problem is further exacerbated in dynamic environments, wherein the configurations of the systems change continually. A typical example is the metering of software products that are used on the systems (such as for managing their licensing).
Any resource management application requires a thorough knowledge of each system to be controlled. For this purpose, inventory tools are exploited to collect information relating to the desired resources of the system; an example of commercial inventory tool available on the market is the “IBM Tivoli Common Inventory Technology or CIT” by IBM Corporation.
Some inventory tools (like the above-mentioned “CIT”) interface with different plug-in components, known as providers. Each provider is adapted to discover the inventory information of an associated type of resources. In this way, the providers encapsulate all the knowledge of the corresponding resource types, so as to mask the different behavior of the myriad of possible resources to the inventory tool. Moreover, the inventory tool may be easily extended by adding new providers for any desired resource type.
Typically, multiple providers are available for each resource type. For example, a provider of the interactive (or standard) type always discovers the inventory information at runtime upon request. Conversely, a provider of the cached type saves the inventory information (which was discovered in response to previous requests) for its reuse in the future. Moreover, a provider of the monitor type maintains a mirror image of the system that may be used to satisfy any discovery request.
Each type of provider has its pros and cons. Particularly, the interactive provider supplies inventory information that is always up-to-date (since it is discovered on the fly); however, its response time may be very high. The cached provider instead returns the required inventory information immediately; however, the result may not correspond to the actual condition of the system at the moment. At the end, the monitor provider supplies up-to-date inventory information very fast; however, this involves an overhead of the system for updating the mirror image continuously.
Usually, a default provider is selected by a system administrator at the installation of the inventory tool (according to its expected use); the system administrator may also switch to another provider later on, in response to any observed change in the use of the inventory tool.
However, this solution is not satisfactory. Indeed, the default provider is necessary a compromise attempting to offer acceptable response times on the average; therefore, the default provider is not optimized for most of the discovery requests that are submitted to the inventory tool. In any case, the choice of the default provider strongly depends on the skill of the system administrator.
Some inventory tools known in the art also allow specifying a desired provider in any discovery request that is submitted thereto; in this way, it is possible to override the selection of the default provider for specific discovery requests (so as to use a different provider that is better suited for this purpose). However, the burden of selecting the optimal provider is now shifted to each resource management application exploiting the services offered by the inventory tool. Therefore, this increases the complexity of the resource management applications based on the inventory tool; moreover, the exploitation of this facility is not trivial (since the knowledge of the behavior of the inventory tool, and especially of its providers, may not be available to the different resource management applications). In this case as well, the choice of the provider must be performed manually.
All of the above adversely affects the performance of the inventory tool (and then of the resource management applications based thereon). Indeed, an erroneous choice of the provider may have deleterious effects on the operation of the inventory tool; for example, experimental results showed that the response times of different providers to the same discovery request may even span from a few minutes to some hours.